GNUH8 v0401

 

 

February 1st, 2004

  

KPIT Cummins Infosystems Limited is now releasing GNUH8 v0401, a cross compiler tool chain for the Renesas (formerly Hitachi) H8 series of micro controllers.

 

SAILENT FEATURES:

 

  1. GNUH8 v0401 is based on gcc-3.3 branch snapshot dated 15th December 2003, binutils-2.14 and newlib sources as on 16th December 2003.

  2. The latest patches have been applied to the gcc and binutils.

  3. Bit operations are relaxed with -relax option. This will reduce code size on relaxable bit operations.

  4. More efficient print/scan functions have been added for users who do not require full ANSI printf(), scanf(), etc.For more details please see  the documentation section below.

  5. Enhancements have been made to the HEW Linker Sections dialog. Through this enhancement the user can move a section with all its following sections to the desired address. Also on modifying the  selection of memory region, the relative address of the sections and all its following sections will get modified, positioning itself at the end of that memory region.

Please refer to the FAQ for details of the patches applied to the gcc-3.3 snapshot sources.

ABOUT GNUH8 v0401: 

Release version: GNUH8 v0401
Release Date: 1st February 2004
Platforms Supported: Red Hat GNU/Linux v6.0 or later (or compatible distribution) Windows 9X/NT/2000/XP/ME  
Languages: C, C++
H8 Series: 
H8/300,
H8/300H,
H8/300H Tiny Series,
H8/S 26XX,
H8/S 2XXX
Object File Formats: ELF, COFF
Please register at http://www.kpitgnutools.com for free technical support. 
With effect from 1st October 2003, the free technical support for the GNUH8 tool chains for Renesas targets is being opened to all users worldwide 
Please contact http://www.kpitgnutools.com/feedback.php for any feedback or suggestions.

CHANGES IN THIS RELEASE:

This section summarizes the major changes as compared to GNUH8 v0304.
Also refer to GNUH8 v0304 release note for details of GCC 3.3 features..

GCC:

  1. Internal compiler error with c++ source is fixed. Previously the following code generated an internal compiler error.
  2.       int g;
          struct foo {
          int a;
          int b;
          };

          struct foo bar = {
          0,
          (((int) &g) & 0xFFFFFF)
          };

  3. When the 'monitor' attribute was specified to a non-void function,the return value was corrupted. This has been fixed.
  4. When -fomit-frame-pointer was used to compile program on H8300 targets in normal mode, stack offset for local variable corrupted which caused wrong value of local variables. This has been fixed.

Binutils:
H8300-COFF and H8300-ELF
  1. Errors are generated for invalid operands in ldm/stm instructions for H8S target.
  2. Fixed Objcopy to generate output for different H8300 targets.This patch will fix the problem to convert a binary file to other than plain h8300 format.
For example, the following command converts a binary file to elf-h8300 format for an h8300s target,
h8300-elf-objcopy -I binary -O elf32-h8300 -B h8300s a.xyz a.o

Previously the output file a.o was generated for a plain h8300 target only.

H8300-ELF
  1. Support for the linker option -gc-sections has been added in h8300-elf. Previously the linker ignored the -gc-sections option. 

Note:

While using the -gc-sections option, be careful to protect the vector table during garbage collection by the linker. Please refer to FAQ 17 of the advanced section of the GNUH8 FAQ for further information on this.
  1. H8300-COFF
    1. H8300-coff target generates 'relocation truncated to fit' error for few math library functions (sin, cos, tan etc.) when compiled with -mrelax option.This has been fixed.
HEW:
  1. In the Linker options dialog, long path names can be used to specify the path to a linker script. Previously an error was generated if the path contained spaces.

  2. When sections are exported to a file, that file can now be directly used in a linker script.

  3. When a new project is generated by HEW, paths for the standard header files are now included automatically.

  4. A HEW crashing problem has been fixed which occured when a makefile was generated using the 'Generate Makefile' option after using the 'Build All' command.

    HEW2 support has been discontinued and hence users are requested to upgrade HEW2 with HEW3. Please visit Free Downloads -> Renesas Tools Menu on www.kpitgnutools.com.

Documentation:

IAR-GNU Migration Guide

The following changes have been made:
- Target dependent switches are added in most functions.
- 'write_mac', 'tas', 'trapa', 'dadd' and 'dsub' functions have been added

Renesas-GNU Migration Guide

This document has been added to help users migrate their code from the Renesas toolchain to GNU tools (and vice versa). The guide includes:
- Compiler command line opotions
- Compiler directives
- Intrinsic functions
- C & Math library functions

Print lite functions 

The existing implementations of scanf() and printf() employ ellipses. 
This links the variable argument library resulting in a large increase in codesize which is not ideal for  embedded applications.
These lite versions of printf() and scanf() do not use variable arguments and help reduce application code size. 
These functions are available in the "Miscellaneous" folder of the toolchain installation directory.

Known Problems:

H8-COFF and H8-ELF
  1. Windows 9X has restriction on the length of command line that can be given. Due to this,
    1. When the tool chain shortcut from 'Start' menu is invoked, the relevant batch file may not be found and Windows 9X may display an error.
    2. In HEW (High-performance Embedded Workshop), this restriction may cause problems during linking. 
Please refer to the following link for further details on this.
http://www.kpitgnutools.com/phpmyfaq/index.php?sid=2884&aktion=artikel&rubrik=001006&id=151&lang=en